package com.treasure.mall.biz.service.core.user;

import com.treasure.mall.biz.entity.user.WxSubscribeUser;
import me.chanjar.weixin.mp.bean.result.WxMpUser;

import java.util.List;

/**
 *
 * <p>
 * +---------------------------------------------------------
 * * @package: com.treasure.mall.biz.service.core.user
 * * @author: guomw (guomwchen@foxmail.com)
 * * @date: 2020/8/26 8:45 下午
 * * @since: V1.0.0
 * +---------------------------------------------------------
 * 注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的
 *
 */
public interface WxSubscribeUserService {

    /**
     * 设置关注用户
     *
     * @param wxMpUser  微信用户新
     * @param subscribe 是否关注
     */
    void setSubscribeUser(WxMpUser wxMpUser, boolean subscribe);

    void setSubscribeUser(WxMpUser wxMpUser, boolean subscribe, boolean isSendTemplateMessage);

    /**
     * 根据用户ID，获取关注用户信息
     *
     * @param userId
     * @return
     */
    WxSubscribeUser findByUserId(Long userId);

    /**
     * 根据unionId获取关注用户信息
     *
     * @param unionId
     * @return
     */
    WxSubscribeUser findByUnionId(String unionId);


    List<WxSubscribeUser> findAll();

    boolean checkSubscribe(Long userId);

    /***
     * 获取关注数(包含取关数量)
     * @return
     */
    long count();

    /**
     * 获取关注数量(不包含取关数量)
     *
     * @return
     */
    long countBySubscribeIsTrue();
}
